package com.eta.common.entity.po;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * @author 星河一叶Ck
 * @date 2025/9/4
 * @description 系统用户表PO类（对应数据库sys_user表）
 */
@Data
@TableName("sys_user")
public class SysUser {

    /**
     * 用户ID（雪花算法）
     * 主键，自增
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 登录账号（唯一）
     */
    @TableField("account")
    private String account;

    /**
     * 密码（加密存储）
     */
    @TableField("password")
    private String password;

    /**
     * 用户昵称
     */
    @TableField("user_name")
    private String userName;

    /**
     * 邮箱
     */
    @TableField("email")
    private String email;

    /**
     * 手机号
     */
    @TableField("phone")
    private String phone;

    /**
     * 头像URL
     */
    @TableField("avatar")
    private String avatar;

    /**
     * 状态（0-禁用，1-正常）
     */
    @TableField("status")
    private Integer status;

    /**
     * 用户类型（0-普通用户，1-管理员）
     */
    @TableField("user_type")
    private Integer userType;

    /**
     * 所属部门ID（关联部门服务）
     * 普通用户可为null
     */
    @TableField("dept_id")
    private Long deptId;

    /**
     * 创建时间
     * 插入时自动填充
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新时间
     * 插入和更新时自动填充
     */
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 乐观锁版本号
     */
    @Version
    @TableField("version")
    private Integer version;

    /**
     * 逻辑删除（0-未删，1-已删）
     */
    @TableLogic
    @TableField("is_deleted")
    private Integer isDeleted;
}
